home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / qbcref.com / NODECMP.ASM < prev    next >
Encoding:
Assembly Source File  |  1990-04-14  |  1.0 KB  |  38 lines

  1.     title    NodeCmp
  2. ; ---------------------------------------------------------------------
  3. ; Module:    NodeCmp
  4. ; Purpose:    Compare Token Strings
  5. ; Arguments:    Arg1 = Address of Token
  6. ;        Arg2 = Address of Node Record (DWORD)
  7. ; Result:    Compares Token to Node.TokStr returns < 0, = 0 , > 0
  8. ; ---------------------------------------------------------------------
  9.     .model    MEDIUM,BASIC
  10. TokenSz EQU    40
  11. node    struc
  12. left    dw    ?                ; left node
  13. right    dw    ?                ; right node
  14. flag    db    ?                ; token type
  15. tokstr    db    TokenSz DUP (?)         ; token
  16. node    ends
  17.  
  18.     .code
  19. NodeCmp proc    token:NEAR PTR,nodeptr:FAR PTR
  20.     mov    bx,token            ; address of token descriptor
  21.     mov    si,[bx+2]            ; address of token string
  22.     les    di,nodeptr            ; node segment
  23.     add    di,OFFSET node.tokstr
  24.     mov    cx,TokenSz            ; length of node.token
  25.     xor    ax,ax                ; clear ax reg
  26.     cld
  27.     repe    cmpsb
  28.     jnz    @F
  29.     jcxz    exit                ; exact match
  30. @@:    dec    si                ; adjust to non-match offset
  31.     dec    di
  32.     mov    al,BYTE PTR [si]        ; setup test on last byte
  33.     sub    al,BYTE PTR es:[di]        ;  compared
  34.     cbw
  35. exit:    ret
  36. NodeCmp endp
  37.     end
  38.